package com.lry.sso.service.redis.service;
/**
 * redis接口
 *
 * @author 李瑞益
 * @date 2019/12/9
 */
public interface RedisService {

    /**
     * 设置
     * @param key 键
     * @param value 值
     */
    void set(String key, String value);

    /**
     * 设置并设置过期时间
     * @param key 键
     * @param value 值
     * @param expireTime 过期时间
     */
    void set(String key, String value, int expireTime);

    /**
     * 设置对象
     * @param key 键
     * @param object 对象
     * @param expireTime 过期时间
     * @param <T> 泛型限制
     */
    <T> void setObject(String key, T object, int expireTime);

    /**
     * 获取
     * @param key 键
     * @return 值
     */
    String get(String key);

    /**
     * 判断是否存在
     * @param key 键
     * @return true：存在
     */
    boolean exists(String key);

    /**
     * 删除指定key
     * @param key 键
     */
    void delete(String key);

    /**
     * 设置过期时间
     * @param key 键
     * @param seconds 过期时间，单位秒
     */
    void expire(String key, int seconds);

    /**
     * 重设值，保留过期时间
     * @param key 键
     * @param value 值
     */
    void setrange(String key, String value);

    /**
     * 获取过期时间
     * @param key 键
     * @return 剩余过期时间，单位毫秒
     */
    Long pttl(String key);
}
